<template>
  <div>
    <el-select
      v-model="id"
      clearable
      filterable
      style="width: 300px"
      size="mini"
      remote
      reserve-keyword
      placeholder="请输入景区"
      :remote-method="(query)=>{querySceneryResource(query)}"
      :loading="searchPushLoading"
      @change="select"
    >
      <el-option
        v-for="item in dataList"
        :key="item.value"
        :label="item.label"
        :value="item.value"
      />
    </el-select>
    <br><br>
    <el-input v-model="testData" style="width: 300px" size="mini" />
    <el-button @click="testFunction">测试</el-button>
    <el-button @click="testFunctionTwo">测试Two</el-button>
    <!--  <el-autocomplete
      v-model="id"
      clearable
      size="mini"
      style="width: 180px;"
      :fetch-suggestions="remoteMethodSupplierName"
      placeholder="请输入内容"
      select-when-unmatched="false"
      @select="handleSelectSupplier"
    />-->
  </div>
</template>

<script>
import { getCustomerById } from '@/api/customer'
import { getToken } from '@/utils/auth'
export default {
  name: 'Index',
  data() {
    return {
      testData: '',
      dataList: [
        {
          label: 'one',
          value: 1
        },
        {
          label: 'two',
          value: 2
        },
        {
          label: 'three',
          value: 3
        }
      ],
      id: -1,
      searchPushLoading: false
    }
  },
  created() {
    var token = getToken()
    console.log(token)
    this.getCustomerById()
  },
  methods: {
    querySceneryResource(key) {
      this.searchPushLoading = true
      console.log(key)
      this.searchPushLoading = false
      console.log('hello')
    },
    select(data) {
      console.log(JSON.stringify(data))
    },
    getCustomerById() {
      getCustomerById('?id=1').then(response => {
        console.log(JSON.stringify(response))
      })
    },
    testFunction() {
      var strData = this.testData.split('')
      var array = [] // 存 '(' 和 '{' 和 '['
      for (var i = 0; i < strData.length; i++) {
        if (this.isLeft(strData[i])) {
          // 如果该数据 是 '(' 或者 '{' 或者 '[' 则放入该Array中
          array.push(strData[i])
        } else if (this.isRight(strData[i])) {
          /* 如果该数据是 ')' 或者 ']' 或者 '}' 则再进行判断 存 '(' 或者 '{' 或者 '[' 的Array里是否有数据，
             若没有数据 则说明该数据没有相对应的 '(' 或者 '{' 或者 '[' 则直接返回无效 结束方法
             若有的话 再进行和Array最后一个数据进行匹配 左右相对应符号若匹对得上则将Array最后一个数据给删除掉 即匹配成功
             若匹配失败 则说明没有与前者符号相对应 返回无效
           */
          if (array.length < 1) {
            alert('无效 1')
            return
          }
          if (!this.isOk(array[array.length - 1], strData[i])) {
            alert('无效 2')
            return
          }
          array.pop()
        } else {
          // 题中说明不能含有其他字符 因此若含有其他字符 则返回无效
          alert('无效 3')
          return
        }
        console.log('原始数据：' + JSON.stringify(this.testData))
        console.log('存"(","[","{" 的Array：' + JSON.stringify(array))
      }
      // 如果Array 中还有数据则说明有 '(' 或者 '{' 或者 '[' 没有对应的数据 返回无效
      if (array.length >= 1) {
        alert('无效')
      } else {
        alert('有效')
      }
    },
    isLeft(a) {
      return a === '(' || a === '[' || a === '{'
    },
    isRight(a) {
      return a === ')' || a === ']' || a === '}'
    },
    isOk(a, b) {
      return (a === '(' && b === ')') || (a === '[' && b === ']') || (a === '{' && b === '}')
    },
    testFunctionTwo() {
      var token = getToken()
      console.log(JSON.stringify(token))
      var map = new Map()
      map.set('a', 'b')
      console.log(map)
    }
  }
}
</script>

<style scoped>

</style>
